<template>
  <div>
    <ul>
      <span :style="{ opacity }">欢迎学习Vue</span>
      <li>news001<input type="text" /></li>
      <li>news002<input type="text" /></li>
      <li>news003<input type="text" /></li>
    </ul>
  </div>
</template>

<script>
export default {
  name: "News",
  data() {
    return {
      opacity: 1,
    };
  },
  // mounted() {
  //   this.timer = setInterval(() => {
  //     console.log('@@@');//路由组件内的异步程序就算走了销毁流程 定时器还是一样会被一直调用
  //                         // 此时就需要专门的路由组件钩子进行处理了
  //     this.opacity -= 0.01;
  //     if (this.opacity <= 0) this.opacity = 1},16)
  // },

  // beforeDestroy() {
  //   clearInterval(timer);
  // },

// 生命周期钩子(专门处理路由组件的,可以理解为vc和vm开启销毁流程===路由组件的激活和失活)

// $nextTick也是钩子 加这两个 之前学了6个一共9个

// 1.路由组件被激活(进入)时会被调用  activated
  activated() {
    console.log('news被激活了');
    
    this.timer = setInterval(() => {
       console.log('@@@')//切换路由组件时 在失活钩子内销毁定时器 定时器就被销毁了不会一直触发了
      this.opacity -= 0.01;
      if (this.opacity <= 0) this.opacity = 1;
    }, 16);
  },
  // 2.路由组件失活(跳转/切走)时会被调用  deactivated
  deactivated() {
    console.log('news被失活了');
    clearInterval(this.timer);
  },
};
</script>


